home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / gfx / opal / DropShadow.lha / Bevel+Stencil.oprx < prev    next >
Text File  |  1993-04-29  |  2KB  |  100 lines

  1. /* Draw a bevelled drop box, plus a stencil mask, using OpalPaint.
  2.  */
  3.  
  4.  
  5. address 'OpalPaint_Rexx'
  6.  
  7. options Results
  8.  
  9. SaveSetUp
  10. GetRect
  11. parse var Result X1  Y1  X2  Y2
  12.  
  13. Width = X2-X1
  14. Height = Y2-Y1
  15.  
  16. If Width < Height then MaxDepth = (Width/2)%1
  17. If Height < Width then MaxDepth = (Height/2)%1
  18.  
  19. /* AskInt 0 MaxDepth 10 "Enter bevel depth in pixels (RETURN = 10)" */
  20. AskProp 0 MaxDepth 10 "Select bevel depth (in pixels)."
  21. Depth = Result           /* Set depth of bevel */
  22.  
  23. GetPen
  24. RGBtoHSV Result
  25. Parse var Result Hue Sat Val
  26.  
  27.     /* Make a stencil mask of the bevel box area */
  28.  
  29. WorkMode STENCIL
  30. SolidRect X1 Y1 X2 Y2-1
  31. WorkMode IMAGE
  32. StenEnable 0
  33.  
  34.     /* Box body. Set up a diagonal HSV gradient */
  35.  
  36. FillMode Gradient
  37. ClearColGrad
  38. ClearTransGrad
  39. ColourDither 0
  40. TransDither 0
  41.  
  42. HSVtoRGB Hue Sat Val
  43. ColGradTag 0 Result
  44. S2 = (Sat-(0.4*65535))%1 /* Note: %1 converts number to an integer */
  45. S2 = MAX(S2,0)    
  46. HSVtoRGB Hue S2 Val
  47. ColGradTag 0.5 Result
  48. HSVtoRGB Hue Sat Val
  49. ColGradTag 1 Result
  50. GradType LinearFree HSV
  51. GradRange X1+Depth Y1+Depth X2-Depth Y2-Depth
  52. SolidRect X1+Depth Y1+Depth X2-Depth Y2-Depth
  53.  
  54. FillMode Solid
  55.     /* Top */
  56.  
  57. V2 = (Val+0.1*65535)%1
  58. V2 = MIN(V2,65535)
  59.  
  60. HSVtoRGB Hue Sat V2
  61. SetPen Result
  62.  
  63. SolidPoly X1 Y1 X2 Y1 X2-Depth Y1+Depth X1+Depth Y1+Depth X1 Y1
  64. LastPoint
  65.  
  66.  
  67.     /* Right */
  68.  
  69. V2 = (Val-0.15*65535)%1
  70. V2 = MAX(V2,0)
  71.  
  72. HSVtoRGB Hue Sat V2
  73. SetPen Result
  74.  
  75. SolidPoly X2 Y1 X2 Y2 X2-Depth Y2-Depth X2-Depth Y1+Depth X2 Y1
  76. LastPoint
  77.  
  78.     /* Left */
  79.  
  80. V2 = (Val+0.15*65535)%1
  81. V2 = MIN(V2,65535)
  82.  
  83. HSVtoRGB Hue Sat V2
  84. SetPen Result
  85.  
  86. SolidPoly X1 Y1 X1+Depth Y1+Depth X1+Depth Y2-Depth X1 Y2 X1 Y1
  87. LastPoint
  88.  
  89.     /* Bottom */
  90.  
  91. V2 = (Val-0.1*65535)%1
  92. V2 = MAX(V2,0)
  93.  
  94. HSVtoRGB Hue Sat V2
  95. SetPen Result
  96.  
  97. SolidPoly X2 Y2 X1 Y2 X1+Depth Y2-Depth X2-Depth Y2-Depth X2 Y2
  98. LastPoint
  99. RestoreSetUp
  100.